<?php
/**
 * 招集学年選択コンポーネントデータマッパもじゅー留
 */
require_once 'Request/DateTime.php';
require_once APPLICATION_PATH . '/models/Calendar/CalendarController.php';
require_once APPLICATION_PATH . '/models/HttpRequest/HttpRequestController.php';
/**
 * 招集学年選択コンポーネントデータマッパクラス
 * @author admin
 */
class Components_SelectDraftAge_Mapper
{
	/** 招集学年リスト	*/
	protected $_DraftAgeList;
	/** カレンダーデータセットオブジェクト */
	protected $_objCalendar;
	/** HTTPリクエストオブジェクト */
	protected $_objHttpRequest;

	public function __construct($objCalendar)
	{
		$this->_objHttpRequest = new Lib_Request_DateTime();
		$this->_objCalendar = $objCalendar;
		$this->_setDraftAges();
	}

	/**
	 * 指定学年が招集対象として設定されている場合ＴＲＵＥを返す
	 * @param  $Gakunen
	 */
	public function isDrafted($Gakunen)
	{
		$needle = $Gakunen;
		if (array_search($needle,  $this->_DraftAgeList) !== FALSE){
			return TRUE;
		}
		return FALSE;
	}

	/**
	 * カレンダーデータセットオブジェクトから設定済み招集学年を取得する
	 */
	protected function _setDraftAges()
	{
		$aryResult = array();
		/*** 予定IDをHTTPリクエストから取得する*/
		$YoteiId = $this->_objHttpRequest->get(Names::YOTEIID);
		/*** 予定ＩＤが設定されていない場合、招集学年なしのから配列を返す */
		if ( $YoteiId == '' ){
			$this->_DraftAgeList = $aryResult;
			return $aryResult;
		}
		/*** カレンダーデータセットから予定データセットを取得する */
		$YoteiDataset = $this->_objCalendar->searchId($YoteiId);
		/*** 予定ＩＤに該当するデータセットがない場合、から配列を返す。 */
		if ( $YoteiDataset === FALSE ) {
			$this->_DraftAgeList = $aryResult;
			return $aryResult;
		}
		/*** 招集学年（カンマつなぎ）取得 */
		$sDraftAges = $YoteiDataset[Models_Calendar_Controller::KEY_DRAFT_AGE];
		/*** 配列分割 */
		$aryResult = explode(',', $sDraftAges);
		$this->_DraftAgeList = $aryResult;
	}
}
